package com.lb.uts.service.policy;

import com.lb.uts.entity.ActiveClientInfo;
import com.lb.uts.entity.ScheduleJob;

import java.util.List;

/**
 * 调度接口，负责返回合适的调度器</p>
 *
 * @author liangb
 * @date 2019/4/28 11:48
 */
public interface ISchedulingPolicy<T extends ActiveClientInfo> {


    /**
     * 选择合适的执行器信息</p>
     * 返回一个list
     *
     * @param job 定时任务信息
     * @return 合适执行的列表或者空列表
     */
    default List<T> getSuitActiveClients(ScheduleJob job) {
        return null;
    }

    ;


    /**
     * 返回一个合适的执行器
     *
     * @param job
     * @return 执行器信息或者null
     */
    default T getSuitActiveClient(ScheduleJob job) {
        return null;
    }
}
